#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "tongxunlu.h"


int main() {
    Contact contacts[20] = {0}; // 初始化联系人数组，所有元素设置为0
    int count = 0; // 当前联系人数量初始化为0
    int choice;
    readFile(contacts, &count); // 从文件中读取联系人信息到数组中
    while(1) { 
    	system("cls"); // 清屏操作
    printf("\n\n\n\n\n"); 
    printf("\t\t|-----------------------------------------CONTACT---------------------------------------------|\n");
    printf("\t\t|1. 添加联系人                                                                                |\n");
    printf("\t\t|2. 删除联系人                                                                                |\n");
    printf("\t\t|3. 修改联系人                                                                                |\n");
    printf("\t\t|4. 显示所有联系人                                                                            |\n");
    printf("\t\t|5. 查找联系人                                                                                |\n");
    printf("\t\t|6. 排序联系人                                                                                |\n");
	printf("\t\t|7. 退出                                                                                      |\n");      
    printf("\t\t|---------------------------------------------------------------------------------------------|\n");
    printf("\t\t\t请输入选择："); 
        scanf("%d", &choice); // 读取用户输入的整数


    switch(choice) {
    // 根据用户输入的 choice 值执行不同的操作
            case 1:
            	// 用户选择添加联系人
            	int n;
            	// 输入想要添加的联系人数量
            	printf("输入本次想要输入的人数：");
            	scanf("%d", &n);
                AddContact(contacts, &count, n); // 调用 AddContact 函数添加联系人
                break;
            case 2:
                // 用户选择删除联系人
                DeleteContact(contacts, &count); // 调用 DeleteContact 函数删除联系人
                break; 
            case 3:
                // 用户选择修改联系人
                ModifyContact(contacts, count); // 调用 ModifyContact 函数修改联系人信息
                break; 
            case 4:
                // 用户选择显示所有联系人
                DisplayContacts(contacts, count); // 调用 DisplayContacts 函数显示所有联系人
                break; 
            case 5:
                // 用户选择查找联系人
                SearchContacts(contacts, count); // 调用 SearchContacts 函数查找联系人
                break;
            case 6:
                // 用户选择排序联系人
                SortContacts(contacts, count); // 调用 SortContacts 函数排序联系人
                DisplayContacts(contacts, count); // 排序后显示所有联系人
                break;
            case 7:
			    // 用户选择退出
                writeFile(contacts, count); // 调用 writeFile 函数保存联系人信息到文件
                exit(0); // 退出程序
            default:
                // 如果 choice 不是上述任何一个值，提示用户输入无效
                printf("无效选择，请重新选择。\n");
        }
        // 清除输入缓冲区，防止影响下一次输入
        while(getchar()!='\n');
        
        system("pause");
    }
    // 程序结束，但通常会有一个循环，等待用户再次输入
    return 0;
}
